﻿using System.Collections.Generic;
using INTEX.DataBase.Tools;
using ReflectionStudio.Core.Events;
using System;
using System.Collections;
using System.Data;
using System.Linq;

namespace WPFExcelReport
{
    public class QTYWSP
    {
        public double QTYA = 0;
        public double QTYB = 0;
        public double QTYC = 0;
        public double QTY = 0;
        public double RATIOA = 0;
        public string sumstr = "";
    }
    public partial class ITXEXRPT
    {

        /// <summary>
        /// GetJob is used to collect the tasks to finish the order creation
        /// </summary>
        /// <param name="FInterID"></param>
        /// <returns></returns>
        public void SJHWVPROD(DataSet db)
        {

            try
            {
                int x = 2; string title = " ";
                if (title.Trim().Length == 0 && db.Tables["ICC_STOCK"].Rows.Count > 0)
                {
                    title = db.Tables["ICC_STOCK"].Rows[0]["TIMERANGE"].ToString().Trim();
                }
                exAgent.SetCellValue(1, 2, "车间产量" + title);
                Dictionary<string, QTYWSP> QTYSH = new Dictionary<string, QTYWSP>();
                QTYWSP qtywsp = null;
                foreach (DataRow dwWB in db.Tables["ICC_STOCK"].Rows)
                {
                    string zone = Helpers.Helper.GetGB2312Value(dwWB["AMTSTKNR"].ToString());
                    double qyta = double.Parse(dwWB["QYTA"].ToString());
                    double qytb = double.Parse(dwWB["QYTB"].ToString());
                    double qytc = double.Parse(dwWB["QYTC"].ToString());
                    double qty = (qyta + qytb + qytc);


                    #region 一车间
                    if (zone.Contains("一车间A"))
                    {
                        if (QTYSH.ContainsKey("一车间A"))
                        {
                            qtywsp = QTYSH["一车间A"];
                        }
                        else
                        {
                            QTYSH.Add("一车间A", new QTYWSP());
                            qtywsp = QTYSH["一车间A"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 3;
                    }


                    if (zone.Contains("一车间B"))
                    {
                        if (QTYSH.ContainsKey("一车间B"))
                        {
                            qtywsp = QTYSH["一车间B"];
                        }
                        else
                        {
                            QTYSH.Add("一车间B", new QTYWSP());
                            qtywsp = QTYSH["一车间B"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 4;
                    }


                    if (zone.Contains("一车间C"))
                    {
                        if (QTYSH.ContainsKey("一车间C"))
                        {
                            qtywsp = QTYSH["一车间C"];
                        }
                        else
                        {
                            QTYSH.Add("一车间C", new QTYWSP());
                            qtywsp = QTYSH["一车间C"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 5;
                    }

                    if (zone.Contains("一车间D"))
                    {
                        if (QTYSH.ContainsKey("一车间D"))
                        {
                            qtywsp = QTYSH["一车间D"];
                        }
                        else
                        {
                            QTYSH.Add("一车间D", new QTYWSP());
                            qtywsp = QTYSH["一车间D"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 6;
                    }

                    #endregion

                    #region 二车间
                    if (zone.Contains("二车间A"))
                    {
                        if (QTYSH.ContainsKey("二车间A"))
                        {
                            qtywsp = QTYSH["二车间A"];
                        }
                        else
                        {
                            QTYSH.Add("二车间A", new QTYWSP());
                            qtywsp = QTYSH["二车间A"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 7;
                    }
                    if (zone.Contains("二车间B"))
                    {
                        if (QTYSH.ContainsKey("二车间B"))
                        {
                            qtywsp = QTYSH["二车间B"];
                        }
                        else
                        {
                            QTYSH.Add("二车间B", new QTYWSP());
                            qtywsp = QTYSH["二车间B"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 8;
                    }


                    if (zone.Contains("二车间C"))
                    {
                        if (QTYSH.ContainsKey("二车间C"))
                        {
                            qtywsp = QTYSH["二车间C"];
                        }
                        else
                        {
                            QTYSH.Add("二车间C", new QTYWSP());
                            qtywsp = QTYSH["二车间C"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 9;
                    }

                    if (zone.Contains("二车间D"))
                    {
                        if (QTYSH.ContainsKey("二车间D"))
                        {
                            qtywsp = QTYSH["二车间D"];
                        }
                        else
                        {
                            QTYSH.Add("二车间D", new QTYWSP());
                            qtywsp = QTYSH["二车间D"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 10;
                    }

                    #endregion

                   
                    if (qtywsp == null)
                    {

                        if (QTYSH.ContainsKey("未定义设备"))
                        {
                            qtywsp = QTYSH["未定义设备"];
                        }
                        else
                        {
                            QTYSH.Add("未定义设备", new QTYWSP());
                            qtywsp = QTYSH["未定义设备"];

                        }
                        qtywsp.sumstr += qyta.ToString() + "+";
                        qtywsp.QTYA += qyta;
                        qtywsp.QTYB += qytb;
                        qtywsp.QTYC += qytc;
                        qtywsp.QTY += qty;
                        if (qtywsp.QTY > 0)
                            qtywsp.RATIOA = Helpers.Helper.RoundX(100 * qtywsp.QTYA / qtywsp.QTY, 1);
                        x = 19;
                        exAgent.SetCellValue(x, 4, "未定义设备"); 
                    }
                    exAgent.SetCellValue(x, 5, qtywsp.QTYA);
                    exAgent.SetCellValue(x, 6, qtywsp.QTYB);
                    exAgent.SetCellValue(x, 7, qtywsp.QTYC);
                    exAgent.SetCellValue(x, 8, qtywsp.RATIOA);
                    exAgent.SetCellValue(x, 10, qtywsp.sumstr);
                    qtywsp = null;
                }
            }
            catch (Exception ex)
            {
                Tracer.Error(ex.StackTrace, ex);
            }
            finally
            {

            }
        }

    }
}
